本文描述了3实例MySQL Group Replication的搭建过程
一、环境信息
ip地址 | 主机名 | server_id |
---|---|---|
172.17.84.71 | mysql001 | 1 |
172.17.84.72 | mysql002 | 2 |
172.17.84.73 | mysql003 | 3 |
二、搭建前准备
- 关闭selinux(略)
开启端口3306 33061
12345678910111213##Addfirewall-cmd --permanent --zone=public --add-port=3306/tcpfirewall-cmd --permanent --zone=public --add-port=33061/tcp##Reloadfirewall-cmd --reload## 检查是否生效firewall-cmd --zone=public --query-port=3306/tcpfirewall-cmd --zone=public --query-port=33061/tcp## 列出所有的开放端口firewall-cmd --list-all配置/etc/hosts ip和主机名对应关系
1234[root@mysql003 ~]# cat /etc/hosts172.17.84.71 mysql001172.17.84.72 msyql002172.17.84.73 mysql003
三、初始化三个数据库实例
3.1 初始化3个mysql实例
mysql001配置文件
参数说明见Group Replication System Variables
初始化实例 并启动
|
|
到错误日志文件中找到临时密码进行登录,登录后修改临时密码
修改root密码
修改密码操作必须设置binlog不记录,执行后再打开,否则会引起START GROUP_REPLICATION执行报错。全新的环境可以通过reset master解决这个问题。
四、配置MGR
4.1 创建复制账号
|
|
4.2 使用change master命令配置server
在下次需要从其他成员恢复其状态时,使用group_replication_recovery复制通道的给定凭据
4.3 安装复制组插件
|
|
4.4 查看插件是否安装成功
|
|
4.5、配置引导组,并启动GROUP_REPLICATION
此引导应仅有单个server独立完成,该server启动组并且只启动一次
查看log,发现是白名单问题导致的,my.cnf添加白名单后重新启动组复制
直接添加白名单到my.cnf,防止下次启动再重新问题
|
|
4.6 查看状态
|
|
4.7 向组中添加实例mysql002 mysql003
mysql002 mysql003的操作和mysql001相同,除了不需要SET GLOBAL group_replication_bootstrap_group=ON;
|
|
查看最终状态
4.8 修改 group_replication_start_on_boot=on
|
|